package br.ufc.desen.persistencia.DAO;

import java.util.List;

import org.hibernate.Session;
import org.hibernate.Transaction;

import br.ufc.desen.persistencia.entidades.Usuario;
import br.ufc.desen.persistencia.util.HibernateUtil;

public class UsuarioDao {
	
	private final Session session;
	
	
	public UsuarioDao(){
		session = HibernateUtil.getSession();
	}

	public void salvarUsuario(Usuario usuario) {
		Transaction t = session.beginTransaction();
		session.save(usuario);
		t.commit();
		
	}

	public void atualizarUsuario(Usuario usuario) {
		Transaction t = session.beginTransaction();
		session.update(usuario);
		t.commit();
	}

	public void removerUsuario(Usuario usuario) {
		Transaction t = session.beginTransaction();
		session.delete(usuario);
		t.commit();
	}

	public List<Usuario> listarUsuarios() {
		
		return session.createCriteria(Usuario.class).list();
	}

	public Usuario carregarUsuario(Long id) {
		return (Usuario) session.load(Usuario.class, id);
	}

}
